package main

import (
	"fmt"
	"os"
	"path/filepath"
	"reflect"
)

var (
	pol = "pol"
)

//获取可执行文件路径:
//os.Getwd() 可能会返回当前可执行文件所在目录中的多个软链接其中的一个
//方法一和方法二的区别:
//workPath是os.Getwd()，即当前的目录；   -- A
//AppPath是os.Args[0]，即二进制文件所在目录  --  B
//如果把命令加到PATH中，然后cd到别的目录执行。A 和 B 的结果是不一样的
func main() {
	//方法一:
	cur, err := os.Getwd()
	if err != nil {
		fmt.Println("err:", err.Error())
		os.Exit(-1)
	}
	fmt.Println("cur dir:", cur)
	//方法二:
	if cur, err = filepath.Abs(filepath.Dir(os.Args[0])); err != nil {
		panic(err)
	}
	fmt.Println("cur dir:", cur)
	fmt.Println("pol:", pol, "Type:", reflect.ValueOf(pol).Type(), "TypeOf:", reflect.TypeOf(pol))
}
